/**
 * This program is free software, you can redistribute it and/or modify.
 * Copyright (c) 2025 Huawei Technologies Co., Ltd.
 * This file is a part of the CANN Open Software.
 * Licensed under CANN Open Software License Agreement Version 2.0 (the "License").
 * Please refer to the License for details. You may not use this file except in compliance with the License.
 * THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE.
 * See LICENSE in the root of the software repository for the full text of the License.
 */
#ifndef ACLNN_MM_WHITE_LIST_H_
#define ACLNN_MM_WHITE_LIST_H_

#include <vector>

namespace matmul_ascendc_list {
const std::initializer_list<std::initializer_list<int64_t>> ASCEND_C_WHITE_LIST = {
    // m, k, n, transposeX1, transposeX2, hasBias, dtype
    {2400, 664, 976, 0, 1, 0, 0},
    {160, 7000, 64, 1, 0, 0, 0},
    {581, 1500, 581, 1, 0, 0, 0},
    {3000, 1112, 256, 0, 0, 1, 0},
    {3000, 2312, 256, 0, 0, 1, 0},
    {3000, 2232, 256, 0, 0, 1, 0},
    {3000, 1272, 256, 0, 0, 1, 0},
    {581, 3000, 581, 1, 0, 0, 0},
    {512, 75608, 2048, 1, 0, 0, 1},
    {2048, 75608, 512, 1, 0, 0, 1},
    {75608, 2048, 512, 0, 1, 1, 1},
    {1536, 75608, 512, 1, 0, 0, 1},
    {75608, 1536, 512, 0, 0, 0, 1},
    {512, 75608, 512, 1, 0, 0, 1},
    {10832, 4224, 1408, 0, 0, 0, 1},
    {16000, 8192, 5120, 1, 0, 0, 1},
    {4096, 688, 4096, 0, 0, 0, 1},
    {4096, 4096, 688, 1, 0, 0, 1},
    {4096, 5120, 16000, 0, 0, 0, 1},
    {4096, 13696, 4096, 0, 1, 0, 1},
    {16384, 5120, 3416, 0, 1, 0, 1},
    {16384, 5120, 1708, 0, 0, 0, 1},
    {4096, 640, 5120, 0, 0, 0, 1},
    {1280, 4096, 16384, 0, 0, 0, 1},
    {16384, 1280, 4096, 1, 0, 0, 1},
    {32768, 640, 5120, 0, 0, 0, 1},
    {16384, 6656, 17920, 0, 0, 0, 1},
    {16384, 17920, 6656, 0, 0, 0, 1},
    {16384, 13696, 4096, 0, 1, 0, 1},
    {4096, 23640, 4096, 1, 0, 0, 1},
    {24576, 2560, 320, 0, 0, 0, 1},
    {4224, 10832, 1408, 1, 0, 0, 1},
    {1408, 10832, 1408, 1, 0, 0, 1},
    {16384, 4096, 11008, 0, 0, 0, 1},
    {4096, 13824, 5120, 0, 0, 0, 1},
    {10832, 1408, 6144, 0, 0, 0, 1},
    {928, 2560, 10240, 0, 0, 0, 1},
    {10832, 1408, 768, 0, 1, 0, 1},
    {10832, 1408, 1408, 0, 1, 0, 1},
    {8192, 13696, 4096, 0, 1, 0, 1},
    {23640, 12288, 4096, 0, 0, 0, 1},
    {10832, 1408, 4224, 0, 1, 0, 1},
    {10832, 1408, 6144, 0, 1, 0, 1},
    {16384, 27392, 4096, 0, 0, 0, 1},
    {5120, 16384, 1708, 1, 0, 0, 1},
    {16384, 4096, 32000, 0, 1, 0, 1},
    {16384, 5120, 640, 0, 0, 0, 1},
    {15000, 8192, 5120, 1, 0, 0, 1},
    {16384, 1024, 64000, 0, 1, 0, 1},
    {101376, 1024, 1024, 0, 1, 0, 1},
    {4096, 4096, 11008, 1, 0, 0, 1},
    {6656, 24576, 6656, 1, 0, 0, 1},
    {4096, 11008, 4096, 0, 0, 0, 1},
    {640, 15808, 640, 1, 0, 0, 1},
    {4096, 16384, 1376, 1, 0, 0, 1},
    {16384, 4096, 12504, 0, 1, 0, 1},
    {12504, 16384, 4096, 1, 0, 0, 1},
    {32768, 5120, 640, 0, 1, 1, 1},
    {512, 13696, 5120, 0, 1, 0, 1},
    {64000, 2560, 320, 0, 0, 0, 1},
    {16000, 640, 2560, 0, 0, 0, 1},
    {4096, 1536, 12288, 0, 0, 0, 1},
    {4096, 6144, 12288, 0, 0, 0, 1},
    {29504, 2732, 8192, 0, 1, 0, 1},
    {5464, 29504, 8192, 1, 0, 0, 1},
    {29504, 5464, 8192, 0, 0, 0, 1},
    {8192, 29504, 2732, 1, 0, 0, 1},
    {29504, 8192, 2732, 0, 0, 0, 1},
    {8192, 2304, 63331, 0, 1, 0, 1},
    {3200, 20490, 6400, 1, 0, 0, 1},
    {6400, 20490, 3200, 1, 0, 0, 1},
    {3200, 20490, 1664, 1, 0, 0, 1},
    {4992, 20490, 3200, 1, 0, 0, 1},
    {16032, 16384, 4096, 1, 0, 0, 1},
    {768, 16384, 4096, 1, 0, 0, 1},
    {236, 8192, 28672, 0, 1, 0, 1},
    {16032, 32768, 4096, 1, 0, 0, 1},
    {768, 32768, 4096, 1, 0, 0, 1},
    {8, 7168, 16, 0, 1, 0, 0},
    {16, 7168, 16, 0, 1, 0, 0},
    {8, 7168, 8, 0, 1, 0, 0},
    {8, 7168, 6, 0, 1, 0, 0},
    {8, 7168, 256, 0, 1, 0, 0},
    {16, 7168, 256, 0, 1, 0, 0},
    {24, 7168, 256, 0, 1, 0, 0},
    {32, 7168, 256, 0, 1, 0, 0},
    {48, 7168, 256, 0, 1, 0, 0},
    {64, 7168, 256, 0, 1, 0, 0},
    {128, 7168, 256, 0, 1, 0, 0},
    {4608, 67584, 1152, 1, 0, 0, 1},
    {4608, 34816, 1152, 1, 0, 0, 1},
    {768, 16384, 768, 1, 0, 0, 1},
    {768, 16384, 3072, 1, 0, 0, 1},
    {200, 2386, 3, 0, 0, 0, 0},
    {200, 2386, 256, 0, 0, 1, 0},
    {96, 2400, 64, 1, 0, 0, 0},
    {96000, 280, 256, 0, 0, 0, 0},
    {720000, 200, 128, 0, 0, 0, 0},
    {720000, 200, 256, 0, 0, 0, 0},
    {2400, 1752, 64, 0, 0, 0, 0},
    {2400, 976, 664, 0, 0, 0, 0},
    {2400, 664, 88, 0, 0, 0, 0},
    {2400, 88, 1, 0, 0, 0, 0},
    {2400, 1, 88, 0, 1, 0, 0},
    {88, 2400, 1, 1, 0, 0, 0},
    {2400, 88, 664, 0, 1, 0, 0},
    {2400, 1336, 2792, 0, 1, 0, 0},
    {64, 2400, 4, 1, 0, 0, 0},
    {2400, 1336, 1752, 0, 1, 0, 0},
    {96, 1024, 64, 1, 0, 0, 0},
    {1024, 936, 256, 0, 0, 0, 0},
    {40960, 280, 256, 0, 0, 0, 0},
    {307200, 200, 128, 0, 0, 0, 0},
    {307200, 200, 256, 0, 0, 0, 0},
    {1024, 1752, 1336, 0, 0, 0, 0},
    {1024, 1752, 64, 0, 0, 0, 0},
    {1024, 2792, 1336, 0, 0, 0, 0},
    {1024, 1336, 976, 0, 0, 0, 0},
    {1024, 664, 976, 0, 1, 0, 0},
    {1024, 4, 64, 0, 1, 0, 0},
    {1024, 128, 216, 0, 1, 0, 0},
    {1024, 8192, 64, 0, 1, 0, 0},
    {3000, 1312, 256, 0, 0, 1, 0},
    {3000, 3429, 581, 0, 0, 1, 0},
    {3000, 4070, 426, 0, 0, 1, 0},
    {3000, 703, 53, 0, 0, 1, 0},
    {3000, 374, 212, 0, 0, 1, 0},
    {236, 3000, 128, 1, 0, 0, 0},
    {3000, 53, 703, 0, 1, 0, 0},
    {3000, 703, 128, 0, 1, 0, 0},
    {128, 3000, 1501, 1, 0, 0, 0},
    {3000, 214, 2985, 0, 1, 0, 0},
    {3000, 426, 4070, 0, 1, 0, 0},
    {4070, 3000, 426, 1, 0, 0, 0},
    {426, 3000, 426, 1, 0, 0, 0},
    {3000, 4070, 128, 0, 1, 0, 0},
    {128, 3000, 4070, 1, 0, 0, 0},
    {3000, 581, 3429, 0, 1, 0, 0},
    {3429, 3000, 581, 1, 0, 0, 0},
    {3000, 3429, 128, 0, 1, 0, 0},
    {128, 3000, 3429, 1, 0, 0, 0},
    {130, 3000, 64, 1, 0, 0, 0},
    {472, 3000, 256, 1, 0, 0, 0},
    {3000, 256, 2232, 0, 1, 0, 0},
    {732, 3000, 256, 1, 0, 0, 0},
    {612, 3000, 256, 1, 0, 0, 0},
    {1132, 3000, 128, 1, 0, 0, 0},
    {3000, 128, 2232, 0, 1, 0, 0},
    {732, 3000, 128, 1, 0, 0, 0},
    {612, 3000, 128, 1, 0, 0, 0},
    {872, 3000, 128, 1, 0, 0, 0},
    {3000, 128, 1992, 0, 1, 0, 0},
    {1072, 3000, 128, 1, 0, 0, 0},
    {4, 700000, 4, 1, 0, 0, 0},
    {4, 350000, 4, 1, 0, 0, 0},
    {60, 350000, 128, 1, 0, 0, 0},
    {4, 56000, 4, 1, 0, 0, 0},
    {200, 720000, 128, 1, 0, 0, 0},
    {200, 307200, 128, 1, 0, 0, 0},
    {128, 700000, 128, 1, 0, 0, 0},
    {200, 720000, 256, 1, 0, 0, 0},
    {44, 70000, 128, 1, 0, 0, 0},
    {200, 307200, 256, 1, 0, 0, 0},
    {128, 350000, 128, 1, 0, 0, 0},
    {72, 56000, 128, 1, 0, 0, 0},
    {7000, 976, 664, 0, 0, 0, 0},
    {280, 96000, 256, 1, 0, 0, 0},
    {64, 56000, 128, 1, 0, 0, 0},
    {280, 40960, 256, 1, 0, 0, 0},
    {128, 56000, 128, 1, 0, 0, 0},
    {7000, 3294, 1648, 0, 0, 0, 0},
    {176, 7000, 2, 1, 0, 0, 0},
    {720000, 200, 256, 0, 0, 0, 0},
    {7000, 3294, 1336, 0, 0, 0, 0},
    {307200, 200, 256, 0, 0, 0, 0},
    {96000, 280, 256, 0, 0, 0, 0},
    {32, 7000, 2, 1, 0, 0, 0},
    {88, 7000, 2, 1, 0, 0, 0},
    {40960, 280, 256, 0, 0, 0, 0},
    {3294, 7000, 1336, 1, 0, 0, 0},
    {2792, 2400, 1336, 1, 0, 0, 0},
    {7000, 976, 1336, 0, 1, 0, 0},
    {1752, 2400, 1336, 1, 0, 0, 0},
    {7000, 976, 1336, 0, 1, 0, 0},
    {1024, 4, 64, 0, 1, 0, 0},
    {2400, 976, 1336, 0, 1, 0, 0},
    {2400, 976, 976, 0, 1, 0, 0},
    {2400, 976, 976, 0, 1, 0, 0},
    {1752, 1024, 1336, 1, 0, 0, 0},
    {2400, 976, 1336, 0, 1, 0, 0},
    {46, 7000, 64, 1, 0, 0, 0},
    {264, 7000, 2, 1, 0, 0, 0},
    {2400, 976, 976, 0, 1, 0, 0},
    {3294, 7000, 1648, 1, 0, 0, 0},
    {1336, 2400, 1336, 1, 0, 0, 0},
    {2400, 976, 664, 0, 0, 0, 0},
    {1024, 976, 664, 0, 0, 0, 0},
    {2400, 1752, 64, 0, 0, 0, 0},
    {64, 7000, 4, 1, 0, 0, 0},
    {1024, 1336, 976, 0, 0, 0, 0},
    {976, 2400, 976, 1, 0, 0, 0},
    {64, 2400, 4, 1, 0, 0, 0},
    {7000, 1648, 1336, 0, 0, 0, 0},
    {96, 2400, 64, 1, 0, 0, 0},
    {2400, 1336, 976, 0, 0, 0, 0},
    {1336, 2400, 976, 1, 0, 0, 0},
    {2400, 1336, 1752, 0, 1, 0, 0},
    {96000, 256, 280, 0, 1, 0, 0},
    {7000, 1336, 1648, 0, 1, 0, 0},
    {1024, 1752, 64, 0, 0, 0, 0},
    {2792, 1024, 1336, 1, 0, 0, 0},
    {1024, 936, 256, 0, 0, 0, 0},
    {1024, 976, 1336, 0, 1, 0, 0},
    {7000, 664, 976, 0, 1, 0, 0},
    {1024, 2792, 1336, 0, 0, 0, 0},
    {1336, 1024, 1336, 1, 0, 0, 0},
    {976, 1024, 976, 1, 0, 0, 0},
    {160, 7000, 64, 1, 0, 0, 0},
    {1152, 8192, 33962, 0, 1, 0, 1},
    {856, 8192, 33936, 0, 1, 0, 1},
    {856, 33936, 8192, 0, 0, 0, 1},
    {1152, 33936, 8192, 0, 0, 0, 1},
    {856, 8192, 33936, 0, 0, 0, 1},
    {1152, 8192, 33936, 0, 0, 0, 1},
    {856, 8192, 8192, 0, 0, 0, 1},
    {856, 8192, 10240, 0, 1, 0, 1},
    {856, 10240, 8192, 0, 0, 0, 1},
    {4096, 12544, 8192, 0, 0, 0, 1},
    {12544, 4096, 8192, 1, 0, 0, 1},
    {7168, 4096, 12288, 1, 0, 0, 1},
    {4096, 12288, 7168, 0, 1, 0, 1},
    {4096, 12888, 3584, 0, 0, 0, 1},
    {4096, 12288, 1792, 0, 1, 0, 1},
    {1792, 4096, 12288, 1, 0, 0, 1},
    {4096, 1792, 12288, 0, 0, 0, 1},
    {4096, 12288, 1536, 0, 0, 0, 1},
    {8358, 132, 3072, 0, 1, 1, 1},
    {7680, 1024, 256, 1, 0, 0, 1},
    {2048, 512, 4096, 0, 1, 0, 1},
    {4096, 8192, 512, 1, 0, 0, 1},
    {2048, 7168, 256, 0, 1, 0, 0},
    {4096, 450, 4096, 1, 0, 0, 1},
    {10240, 512, 3584, 0, 0, 0, 1},
    {3584, 456, 3584, 1, 0, 0, 1},
    {12288, 450, 4096, 1, 0, 0, 1},
    {1080, 1280, 5120, 0, 1, 0, 1},
    {1080, 1280, 3840, 0, 1, 0, 1},
    {16384, 512, 512, 0, 0, 0, 1},
    {544, 14784, 8192, 0, 0, 0, 1},
    {4096, 450, 3584, 1, 0, 0, 1},
    {3584, 749, 3584, 1, 0, 0, 1},
    {448, 8192, 152064, 0, 1, 0, 1},
    {1080, 5120, 1280, 0, 1, 0, 1},
    {448, 8192, 59136, 0, 1, 0, 1},
    {8192, 720, 7392, 1, 0, 0, 1},
    {672, 8192, 29568, 0, 0, 0, 1},
    {3072, 208, 12288, 1, 0, 0, 1},
    {3072, 208, 9216, 1, 0, 0, 1},
    {720, 8192, 14784, 0, 1, 0, 1},
    {8192, 544, 7392, 1, 0, 0, 1},
    {736, 8192, 29568, 0, 0, 0, 1},
    {544, 2048, 8192, 0, 1, 0, 1},
    {450, 4096, 16384, 0, 0, 0, 1},
    {6, 4096, 24576, 0, 0, 0, 1},
    {736, 8192, 152064, 0, 1, 0, 1},
    {187, 5120, 3584, 0, 1, 0, 1},
    {450, 3584, 4096, 0, 1, 0, 1},
    {448, 8192, 8192, 0, 0, 0, 1},
    {544, 2560, 8192, 0, 0, 0, 1},
    {448, 8192, 10240, 0, 1, 0, 1},
    {198, 5120, 3584, 0, 1, 0, 1},
    {221, 5120, 3584, 0, 1, 0, 1},
    {448, 8192, 29568, 0, 1, 0, 1},
    {118260, 12288, 3072, 0, 1, 0, 1},
    {450, 16384, 4096, 0, 0, 0, 1},
    {736, 8192, 59136, 0, 1, 0, 1},
    {450, 16384, 4096, 0, 1, 0, 1},
    {456, 3584, 3584, 0, 0, 0, 1},
    {216, 5120, 3584, 0, 1, 0, 1},
    {749, 3584, 3584, 0, 0, 0, 1},
    {12288, 208, 3072, 1, 0, 0, 1},
    {544, 8192, 14784, 0, 1, 0, 1},
    {24576, 24212, 4096, 1, 0, 0, 1},
    {192000, 66, 64, 0, 1, 0, 0},
    {24000, 5, 25, 1, 1, 0, 0},
    {48000, 5, 25, 1, 1, 0, 0},
    {24000, 25, 25, 1, 0, 0, 0},
    {24000, 4, 18, 1, 0, 0, 0},
    {48000, 4, 18, 1, 0, 0, 0},
    {48000, 25, 25, 1, 0, 0, 0},
    {9000, 80, 64, 0, 0, 0, 0},
    {24000, 124, 124, 0, 0, 0, 0},
    {45000, 124, 124, 0, 0, 0, 0},
    {39000, 124, 124, 0, 0, 0, 0},
    {45000, 124, 64, 0, 0, 0, 0},
    {75000, 124, 124, 0, 0, 0, 0},
    {12800, 145, 120, 0, 0, 0, 0},
    {96000, 256, 280, 0, 1, 0, 0},
    {75000, 124, 64, 0, 1, 0, 0},
    {976, 1024, 976, 1, 0, 0, 0},
    {1336, 1024, 1336, 1, 0, 0, 0},
    {170, 1500, 160, 1, 0, 0, 0},
    {1752, 1024, 1336, 1, 0, 0, 0},
    {1024, 2, 64, 0, 1, 0, 0},
    {249, 2048, 2048, 1, 0, 0, 0},
    {16, 3000, 3, 1, 0, 0, 0},
    {60, 2048, 2048, 1, 0, 0, 0},
    {375000, 140, 1024, 0, 1, 0, 0},
    {375000, 148, 1024, 0, 1, 0, 0},
    {96, 4199, 4199, 1, 0, 0, 0},
    {375000, 148, 1024, 0, 0, 0, 0},
    {96, 4136, 4136, 1, 0, 0, 0},
    {96, 4185, 4185, 1, 0, 0, 0},
    {116, 7000, 7000, 1, 0, 0, 0},
    {1500, 16, 3, 0, 0, 0, 0},
    {96, 3982, 3982, 1, 0, 0, 0},
    {96, 3972, 3972, 1, 0, 0, 0},
    {375000, 140, 1024, 0, 0, 0, 0},
    {32, 2647, 2647, 1, 0, 0, 0},
    {96, 3815, 3815, 1, 0, 0, 0},
    {64, 1024, 1024, 1, 0, 0, 0},
    {96, 3647, 3647, 1, 0, 0, 0},
    {96, 3739, 3739, 1, 0, 0, 0},
    {96, 3341, 3341, 1, 0, 0, 0},
    {96, 3262, 3262, 1, 0, 0, 0},
    {96, 3428, 3428, 1, 0, 0, 0},
    {96, 3355, 3355, 1, 0, 0, 0},
    {96, 3398, 3398, 1, 0, 0, 0},
    {96, 3382, 3382, 1, 0, 0, 0},
    {96, 3321, 3321, 1, 0, 0, 0},
    {96, 3212, 3212, 1, 0, 0, 0},
    {96, 3316, 3316, 1, 0, 0, 0},
    {1500, 2985, 214, 0, 0, 0, 0},
    {96, 3238, 3238, 1, 0, 0, 0},
    {19200, 148, 1024, 0, 0, 0, 0},
    {96, 3251, 3251, 1, 0, 0, 0},
    {96, 3242, 3242, 1, 0, 0, 0},
    {96, 3062, 3062, 1, 0, 0, 0},
    {1500, 4765, 348, 0, 0, 0, 0},
    {19200, 140, 1024, 0, 0, 0, 0},
    {31, 2048, 2048, 1, 0, 0, 0},
    {96000, 64, 104, 0, 1, 0, 0},
    {96, 2997, 2997, 1, 0, 0, 0},
    {3429, 1500, 1500, 1, 0, 0, 0},
    {72, 3000, 3000, 1, 0, 0, 0},
    {96, 2952, 2952, 1, 0, 0, 0},
    {88, 3000, 3000, 1, 0, 0, 0},
    {1500, 454, 88, 0, 0, 0, 0},
    {96, 2927, 2927, 1, 0, 0, 0},
    {4765, 1500, 1500, 1, 0, 0, 0},
    {90000, 32, 104, 0, 1, 0, 0},
    {96, 2746, 64, 1, 0, 0, 0},
    {4800, 128, 2864, 0, 1, 0, 0},
    {90000, 64, 88, 0, 1, 0, 0},
    {96, 2759, 2759, 1, 0, 0, 0},
    {96, 2858, 2858, 1, 0, 0, 0},
    {2048, 64, 4058, 0, 0, 0, 0},
    {96, 2750, 64, 1, 0, 0, 0},
    {96, 2661, 64, 1, 0, 0, 0},
    {1500, 496, 116, 0, 0, 0, 0},
    {4070, 1500, 426, 1, 0, 0, 0},
    {49500, 128, 144, 0, 0, 0, 0},
    {96, 2647, 64, 1, 0, 0, 0},
    {96, 2771, 64, 1, 0, 0, 0},
    {1024, 512, 512, 0, 0, 0, 0},
    {4058, 2048, 288, 1, 0, 0, 0},
    {794, 1500, 452, 1, 0, 0, 0},
    {1024, 5991, 1016, 0, 0, 0, 0},
    {1024, 6247, 1016, 0, 0, 0, 0},
    {1500, 214, 2985, 0, 1, 0, 0},
    {88, 1500, 32, 1, 0, 0, 0},

};

const std::initializer_list<std::initializer_list<int64_t>> ASCEND_C_WHITE_LIST_B3 = {
    // m, k, n, transposeX1, transposeX2, hasBias, dtype
    {2400, 664, 976, 0, 1, 0, 0},
    {160, 7000, 64, 1, 0, 0, 0},
    {581, 1500, 581, 1, 0, 0, 0},
    {3000, 1112, 256, 0, 0, 1, 0},
    {3000, 2312, 256, 0, 0, 1, 0},
    {3000, 2232, 256, 0, 0, 1, 0},
    {3000, 1272, 256, 0, 0, 1, 0},
    {581, 3000, 581, 1, 0, 0, 0},
    {512, 75608, 2048, 1, 0, 0, 1},
    {2048, 75608, 512, 1, 0, 0, 1},
    {75608, 2048, 512, 0, 1, 1, 1},
    {1536, 75608, 512, 1, 0, 0, 1},
    {75608, 1536, 512, 0, 0, 0, 1},
    {512, 75608, 512, 1, 0, 0, 1},
    {10832, 4224, 1408, 0, 0, 0, 1},
    {16000, 8192, 5120, 1, 0, 0, 1},
    {4096, 688, 4096, 0, 0, 0, 1},
    {4096, 4096, 688, 1, 0, 0, 1},
    {4096, 5120, 16000, 0, 0, 0, 1},
    {4096, 13696, 4096, 0, 1, 0, 1},
    {16384, 5120, 3416, 0, 1, 0, 1},
    {16384, 5120, 1708, 0, 0, 0, 1},
    {4096, 640, 5120, 0, 0, 0, 1},
    {1280, 4096, 16384, 0, 0, 0, 1},
    {16384, 1280, 4096, 1, 0, 0, 1},
    {32768, 640, 5120, 0, 0, 0, 1},
    {16384, 6656, 17920, 0, 0, 0, 1},
    {16384, 17920, 6656, 0, 0, 0, 1},
    {16384, 13696, 4096, 0, 1, 0, 1},
    {4096, 23640, 4096, 1, 0, 0, 1},
    {24576, 2560, 320, 0, 0, 0, 1},
    {4224, 10832, 1408, 1, 0, 0, 1},
    {1408, 10832, 1408, 1, 0, 0, 1},
    {16384, 4096, 11008, 0, 0, 0, 1},
    {4096, 13824, 5120, 0, 0, 0, 1},
    {10832, 1408, 6144, 0, 0, 0, 1},
    {928, 2560, 10240, 0, 0, 0, 1},
    {10832, 1408, 768, 0, 1, 0, 1},
    {10832, 1408, 1408, 0, 1, 0, 1},
    {8192, 13696, 4096, 0, 1, 0, 1},
    {23640, 12288, 4096, 0, 0, 0, 1},
    {10832, 1408, 4224, 0, 1, 0, 1},
    {10832, 1408, 6144, 0, 1, 0, 1},
    {16384, 27392, 4096, 0, 0, 0, 1},
    {5120, 16384, 1708, 1, 0, 0, 1},
    {16384, 4096, 32000, 0, 1, 0, 1},
    {16384, 5120, 640, 0, 0, 0, 1},
    {15000, 8192, 5120, 1, 0, 0, 1},
    {16384, 1024, 64000, 0, 1, 0, 1},
    {101376, 1024, 1024, 0, 1, 0, 1},
    {4096, 4096, 11008, 1, 0, 0, 1},
    {6656, 24576, 6656, 1, 0, 0, 1},
    {4096, 11008, 4096, 0, 0, 0, 1},
    {640, 15808, 640, 1, 0, 0, 1},
    {4096, 16384, 1376, 1, 0, 0, 1},
    {16384, 4096, 12504, 0, 1, 0, 1},
    {12504, 16384, 4096, 1, 0, 0, 1},
    {32768, 5120, 640, 0, 1, 1, 1},
    {512, 13696, 5120, 0, 1, 0, 1},
    {64000, 2560, 320, 0, 0, 0, 1},
    {16000, 640, 2560, 0, 0, 0, 1},
    {4096, 1536, 12288, 0, 0, 0, 1},
    {4096, 6144, 12288, 0, 0, 0, 1},
    {29504, 2732, 8192, 0, 1, 0, 1},
    {5464, 29504, 8192, 1, 0, 0, 1},
    {29504, 5464, 8192, 0, 0, 0, 1},
    {8192, 29504, 2732, 1, 0, 0, 1},
    {29504, 8192, 2732, 0, 0, 0, 1},
    {8192, 2304, 63331, 0, 1, 0, 1},
    {3200, 20490, 6400, 1, 0, 0, 1},
    {6400, 20490, 3200, 1, 0, 0, 1},
    {3200, 20490, 1664, 1, 0, 0, 1},
    {4992, 20490, 3200, 1, 0, 0, 1},
    {16032, 16384, 4096, 1, 0, 0, 1},
    {768, 16384, 4096, 1, 0, 0, 1},
    {236, 8192, 28672, 0, 1, 0, 1},
    {16032, 32768, 4096, 1, 0, 0, 1},
    {768, 32768, 4096, 1, 0, 0, 1},
    {666, 2816, 1024, 0, 0, 0, 1},
    {4608, 67584, 1152, 1, 0, 0, 1},
    {4608, 34816, 1152, 1, 0, 0, 1},
    {768, 16384, 3072, 1, 0, 0, 1},
    {200, 2386, 3, 0, 0, 0, 0},
    {200, 2386, 256, 0, 0, 1, 0},
    {96, 2400, 64, 1, 0, 0, 0},
    {96000, 280, 256, 0, 0, 0, 0},
    {720000, 200, 128, 0, 0, 0, 0},
    {720000, 200, 256, 0, 0, 0, 0},
    {2400, 1752, 64, 0, 0, 0, 0},
    {2400, 976, 664, 0, 0, 0, 0},
    {2400, 664, 88, 0, 0, 0, 0},
    {2400, 88, 1, 0, 0, 0, 0},
    {2400, 1, 88, 0, 1, 0, 0},
    {88, 2400, 1, 1, 0, 0, 0},
    {2400, 88, 664, 0, 1, 0, 0},
    {2400, 1336, 2792, 0, 1, 0, 0},
    {64, 2400, 4, 1, 0, 0, 0},
    {2400, 1336, 1752, 0, 1, 0, 0},
    {96, 1024, 64, 1, 0, 0, 0},
    {1024, 936, 256, 0, 0, 0, 0},
    {40960, 280, 256, 0, 0, 0, 0},
    {307200, 200, 128, 0, 0, 0, 0},
    {307200, 200, 256, 0, 0, 0, 0},
    {1024, 1752, 1336, 0, 0, 0, 0},
    {1024, 1752, 64, 0, 0, 0, 0},
    {1024, 2792, 1336, 0, 0, 0, 0},
    {1024, 1336, 976, 0, 0, 0, 0},
    {1024, 664, 976, 0, 1, 0, 0},
    {1024, 4, 64, 0, 1, 0, 0},
    {1024, 128, 216, 0, 1, 0, 0},
    {3000, 1312, 256, 0, 0, 1, 0},
    {3000, 3429, 581, 0, 0, 1, 0},
    {3000, 4070, 426, 0, 0, 1, 0},
    {3000, 703, 53, 0, 0, 1, 0},
    {3000, 374, 212, 0, 0, 1, 0},
    {236, 3000, 128, 1, 0, 0, 0},
    {3000, 53, 703, 0, 1, 0, 0},
    {3000, 703, 128, 0, 1, 0, 0},
    {128, 3000, 1501, 1, 0, 0, 0},
    {3000, 214, 2985, 0, 1, 0, 0},
    {3000, 426, 4070, 0, 1, 0, 0},
    {4070, 3000, 426, 1, 0, 0, 0},
    {426, 3000, 426, 1, 0, 0, 0},
    {3000, 4070, 128, 0, 1, 0, 0},
    {128, 3000, 4070, 1, 0, 0, 0},
    {3000, 581, 3429, 0, 1, 0, 0},
    {3429, 3000, 581, 1, 0, 0, 0},
    {3000, 3429, 128, 0, 1, 0, 0},
    {128, 3000, 3429, 1, 0, 0, 0},
    {130, 3000, 64, 1, 0, 0, 0},
    {472, 3000, 256, 1, 0, 0, 0},
    {3000, 256, 2232, 0, 1, 0, 0},
    {732, 3000, 256, 1, 0, 0, 0},
    {612, 3000, 256, 1, 0, 0, 0},
    {1132, 3000, 128, 1, 0, 0, 0},
    {3000, 128, 2232, 0, 1, 0, 0},
    {732, 3000, 128, 1, 0, 0, 0},
    {612, 3000, 128, 1, 0, 0, 0},
    {872, 3000, 128, 1, 0, 0, 0},
    {3000, 128, 1992, 0, 1, 0, 0},
    {1072, 3000, 128, 1, 0, 0, 0},
    {4, 700000, 4, 1, 0, 0, 0},
    {4, 350000, 4, 1, 0, 0, 0},
    {60, 350000, 128, 1, 0, 0, 0},
    {4, 56000, 4, 1, 0, 0, 0},
    {200, 720000, 128, 1, 0, 0, 0},
    {200, 307200, 128, 1, 0, 0, 0},
    {128, 700000, 128, 1, 0, 0, 0},
    {200, 720000, 256, 1, 0, 0, 0},
    {44, 70000, 128, 1, 0, 0, 0},
    {200, 307200, 256, 1, 0, 0, 0},
    {128, 350000, 128, 1, 0, 0, 0},
    {72, 56000, 128, 1, 0, 0, 0},
    {7000, 976, 664, 0, 0, 0, 0},
    {280, 96000, 256, 1, 0, 0, 0},
    {64, 56000, 128, 1, 0, 0, 0},
    {280, 40960, 256, 1, 0, 0, 0},
    {128, 56000, 128, 1, 0, 0, 0},
    {7000, 3294, 1648, 0, 0, 0, 0},
    {176, 7000, 2, 1, 0, 0, 0},
    {720000, 200, 256, 0, 0, 0, 0},
    {7000, 3294, 1336, 0, 0, 0, 0},
    {307200, 200, 256, 0, 0, 0, 0},
    {96000, 280, 256, 0, 0, 0, 0},
    {32, 7000, 2, 1, 0, 0, 0},
    {88, 7000, 2, 1, 0, 0, 0},
    {40960, 280, 256, 0, 0, 0, 0},
    {3294, 7000, 1336, 1, 0, 0, 0},
    {2792, 2400, 1336, 1, 0, 0, 0},
    {7000, 976, 1336, 0, 1, 0, 0},
    {1752, 2400, 1336, 1, 0, 0, 0},
    {7000, 976, 1336, 0, 1, 0, 0},
    {1024, 4, 64, 0, 1, 0, 0},
    {2400, 976, 1336, 0, 1, 0, 0},
    {2400, 976, 976, 0, 1, 0, 0},
    {2400, 976, 976, 0, 1, 0, 0},
    {1752, 1024, 1336, 1, 0, 0, 0},
    {2400, 976, 1336, 0, 1, 0, 0},
    {46, 7000, 64, 1, 0, 0, 0},
    {264, 7000, 2, 1, 0, 0, 0},
    {2400, 976, 976, 0, 1, 0, 0},
    {3294, 7000, 1648, 1, 0, 0, 0},
    {1336, 2400, 1336, 1, 0, 0, 0},
    {2400, 976, 664, 0, 0, 0, 0},
    {1024, 976, 664, 0, 0, 0, 0},
    {2400, 1752, 64, 0, 0, 0, 0},
    {64, 7000, 4, 1, 0, 0, 0},
    {1024, 1336, 976, 0, 0, 0, 0},
    {976, 2400, 976, 1, 0, 0, 0},
    {64, 2400, 4, 1, 0, 0, 0},
    {7000, 1648, 1336, 0, 0, 0, 0},
    {96, 2400, 64, 1, 0, 0, 0},
    {2400, 1336, 976, 0, 0, 0, 0},
    {1336, 2400, 976, 1, 0, 0, 0},
    {2400, 1336, 1752, 0, 1, 0, 0},
    {96000, 256, 280, 0, 1, 0, 0},
    {7000, 1336, 1648, 0, 1, 0, 0},
    {1024, 1752, 64, 0, 0, 0, 0},
    {2792, 1024, 1336, 1, 0, 0, 0},
    {1024, 936, 256, 0, 0, 0, 0},
    {1024, 976, 1336, 0, 1, 0, 0},
    {7000, 664, 976, 0, 1, 0, 0},
    {1024, 2792, 1336, 0, 0, 0, 0},
    {1336, 1024, 1336, 1, 0, 0, 0},
    {976, 1024, 976, 1, 0, 0, 0},
    {160, 7000, 64, 1, 0, 0, 0},
    {8, 7168, 16, 0, 1, 0, 0},
    {16, 7168, 16, 0, 1, 0, 0},
    {8, 7168, 8, 0, 1, 0, 0},
    {8, 7168, 6, 0, 1, 0, 0},
    {8, 7168, 256, 0, 1, 0, 0},
    {16, 7168, 256, 0, 1, 0, 0},
    {24, 7168, 256, 0, 1, 0, 0},
    {32, 7168, 256, 0, 1, 0, 0},
    {48, 7168, 256, 0, 1, 0, 0},
    {64, 7168, 256, 0, 1, 0, 0},
    {128, 7168, 256, 0, 1, 0, 0}};

const std::initializer_list<std::initializer_list<int64_t>> ASCEND_C_WHITE_LIST_B4 = {
    // m, k, n, transposeX1, transposeX2, hasBias, dtype
    {10832, 4224, 1408, 0, 0, 0, 1},
    {4096, 688, 4096, 0, 0, 0, 1},
    {4096, 4096, 688, 1, 0, 0, 1},
    {4096, 5120, 16000, 0, 0, 0, 1},
    {4096, 13696, 4096, 0, 1, 0, 1},
    {16384, 5120, 3416, 0, 1, 0, 1},
    {16384, 5120, 1708, 0, 0, 0, 1},
    {1280, 4096, 16384, 0, 0, 0, 1},
    {16384, 1280, 4096, 1, 0, 0, 1},
    {32768, 640, 5120, 0, 0, 0, 1},
    {16384, 13696, 4096, 0, 1, 0, 1},
    {24576, 2560, 320, 0, 0, 0, 1},
    {4224, 10832, 1408, 1, 0, 0, 1},
    {1408, 10832, 1408, 1, 0, 0, 1},
    {16384, 4096, 11008, 0, 0, 0, 1},
    {4096, 13824, 5120, 0, 0, 0, 1},
    {10832, 1408, 6144, 0, 0, 0, 1},
    {928, 2560, 10240, 0, 0, 0, 1},
    {10832, 1408, 768, 0, 1, 0, 1},
    {10832, 1408, 1408, 0, 1, 0, 1},
    {8192, 13696, 4096, 0, 1, 0, 1},
    {10832, 1408, 4224, 0, 1, 0, 1},
    {10832, 1408, 6144, 0, 1, 0, 1},
    {16384, 27392, 4096, 0, 0, 0, 1},
    {5120, 16384, 1708, 1, 0, 0, 1},
    {15000, 8192, 5120, 1, 0, 0, 1},
    {16384, 1024, 64000, 0, 1, 0, 1},
    {101376, 1024, 1024, 0, 1, 0, 1},
    {4096, 4096, 11008, 1, 0, 0, 1},
    {6656, 24576, 6656, 1, 0, 0, 1},
    {4096, 11008, 4096, 0, 0, 0, 1},
    {640, 15808, 640, 1, 0, 0, 1},
    {4096, 16384, 1376, 1, 0, 0, 1},
    {16384, 4096, 12504, 0, 1, 0, 1},
    {12504, 16384, 4096, 1, 0, 0, 1},
    {512, 13696, 5120, 0, 1, 0, 1},
    {200, 2386, 256, 0, 0, 1, 0},
    {666, 2816, 1024, 0, 0, 0, 1},
    {8, 7168, 16, 0, 1, 0, 0},
    {16, 7168, 16, 0, 1, 0, 0},
    {8, 7168, 8, 0, 1, 0, 0},
    {8, 7168, 6, 0, 1, 0, 0},
    {8, 7168, 256, 0, 1, 0, 0},
    {16, 7168, 256, 0, 1, 0, 0},
    {24, 7168, 256, 0, 1, 0, 0},
    {32, 7168, 256, 0, 1, 0, 0},
    {48, 7168, 256, 0, 1, 0, 0},
    {64, 7168, 256, 0, 1, 0, 0},
    {128, 7168, 256, 0, 1, 0, 0}};

const std::initializer_list<std::initializer_list<int64_t>> ASCEND_C_NDNZ_WHITE_LIST_B3 = {
    {1, 5120, 16384, 0, 0, 0, 1},  {1024, 5120, 16384, 0, 0, 0, 1}, {1024, 8192, 5120, 0, 0, 0, 1},
    {60, 5120, 16384, 0, 0, 0, 1}, {1024, 5120, 8192, 0, 0, 0, 1},  {1024, 5120, 1792, 0, 0, 0, 1},
    {120, 4096, 5120, 0, 0, 0, 1},
};

const std::initializer_list<std::initializer_list<int64_t>> ASCEND_C_NDNZ_WHITE_LIST_B4 = {
    {1, 8192, 5120, 0, 0, 0, 1},
    {1, 5120, 8192, 0, 0, 0, 1},
};

const std::initializer_list<std::initializer_list<int64_t>> ASCEND_C_BLACK_LIST = {
    // m, k, n, transposeX1, transposeX2, hasBias, dtype
    {4096, 8192, 4096, 0, 0, 1, 1},
    {2048, 12288, 6144, 0, 1, 0, 1},
    {2048, 6144, 12288, 0, 1, 0, 1},
    {4096, 12288, 6144, 0, 1, 0, 1},
    {4096, 6144, 12288, 0, 1, 0, 1},
    {4096, 16640, 12288, 0, 0, 0, 1},
    {2045, 8192, 60000, 0, 1, 0, 1},
    {2048, 5120, 27328, 0, 1, 0, 1},
    {2048, 10240, 8000, 0, 1, 0, 1},
    {2304, 5120, 27328, 0, 1, 0, 1},
    {4084, 8192, 60000, 0, 1, 0, 1},
    {4096, 5120, 15712, 0, 1, 0, 1},
    {4096, 5120, 32000, 0, 1, 0, 1},
    {4096, 8192, 32001, 0, 1, 0, 1},
    {4096, 10240, 8000, 0, 1, 0, 1},
    {4096, 12288, 14592, 0, 1, 0, 1},
    {4096, 12288, 16544, 0, 1, 0, 1},
    {4096, 12288, 16640, 0, 1, 0, 1},
    {4102, 8192, 60000, 0, 1, 0, 1},
    {8179, 5120, 60000, 0, 1, 0, 1},
    {8192, 1280, 10240, 0, 1, 0, 1},
    {8192, 5120, 25216, 0, 1, 0, 1},
    {8192, 5120, 27328, 0, 1, 0, 1},
    {8192, 5120, 60000, 0, 1, 0, 1},
    {8192, 8192, 60000, 0, 1, 0, 1},
    {16384, 4096, 15744, 0, 1, 0, 1},
    {24576, 6656, 32000, 0, 1, 0, 1},
    {24576, 17920, 6656, 0, 1, 0, 1},
    {2048, 17920, 6656, 0, 0, 0, 1},
    {2048, 32000, 6656, 0, 0, 0, 1},
    {2048, 6656, 32000, 0, 0, 0, 1},
    {4096, 32000, 4096, 0, 0, 0, 1},
    {12288, 6144, 1536, 1, 0, 0, 1},
    {4608, 16384, 4096, 1, 0, 0, 1},
    {2048, 6144, 12288, 0, 0, 0, 1},
    {32768, 15712, 4096, 0, 0, 0, 1},
    {32768, 16032, 4096, 0, 0, 0, 1},
    {63331, 8192, 2560, 1, 0, 0, 1},
    {8192, 63331, 2304, 0, 0, 0, 1},
    {16384, 8, 5120, 0, 0, 0, 1},
    {4096, 16, 25088, 0, 0, 0, 1},
    {65536, 32, 1152, 0, 0, 0, 1},
    {16384, 64, 6144, 0, 1, 0, 1},
    {16384, 64, 6144, 0, 0, 0, 1},
    {12288, 15000, 8192, 0, 0, 0, 1},
    {16384, 15000, 8192, 0, 0, 0, 1},
    {6144, 15000, 8192, 0, 0, 0, 1},
    {2048, 12000, 1888, 1, 0, 0, 0},
    {221184, 320, 2560, 0, 1, 0, 1},
    {12288, 32768, 8192, 0, 1, 0, 1},
    {12288, 24576, 8192, 0, 0, 0, 1},
    {1712, 33936, 8192, 0, 1, 0, 1},
    {1712, 8192, 33936, 0, 0, 0, 1},
    {1152, 8192, 33936, 0, 0, 0, 1},
    {1152, 33936, 8192, 0, 1, 0, 1},
    {1152, 33936, 8192, 0, 0, 0, 1},

    {2304, 33936, 8192, 0, 0, 0, 1},
    {2304, 33936, 8192, 0, 1, 0, 1},
    {2304, 8192, 33936, 0, 0, 0, 1},
    {3424, 33936, 8192, 0, 0, 0, 1},
    {3424, 33936, 8192, 0, 1, 0, 1},
    {4608, 33936, 8192, 0, 0, 0, 1},
    {4608, 33936, 8192, 0, 1, 0, 1},
    {3424, 8192, 33936, 0, 0, 0, 1},
    {4608, 8192, 33936, 0, 0, 0, 1},

    {4096, 4096, 1024, 1, 0, 0, 1},
    {4096, 4096, 1024, 0, 0, 0, 1},
    {4096, 2752, 4096, 0, 1, 0, 1},
    {4096, 4096, 3072, 0, 1, 0, 1},
    {4096, 2752, 4096, 0, 0, 0, 1},
    {3072, 4096, 4096, 1, 0, 0, 1},
    {1024, 6144, 4096, 1, 0, 0, 1},
    {4096, 6144, 1024, 1, 0, 0, 1},
    {10240, 2048, 2560, 1, 0, 0, 1},
    {2048, 10240, 3840, 0, 1, 0, 1},
    {2048, 10240, 5120, 0, 1, 0, 1},
    {2048, 1280, 10240, 0, 1, 0, 1},
    {2048, 2560, 10240, 0, 1, 0, 1},
    {2048, 3840, 10240, 0, 0, 0, 1},
    {2048, 5120, 10240, 0, 0, 0, 1},
    {24000, 4, 18, 1, 1, 0, 0},
    {48000, 4, 18, 1, 1, 0, 0},
    {192000, 66, 64, 0, 1, 0, 0},
    {24000, 25, 5, 1, 0, 0, 0},
    {48000, 25, 5, 1, 0, 0, 0},
    {22500, 32, 76, 0, 0, 0, 0},
    {75000, 64, 124, 0, 0, 0, 0},
    {12800, 88, 88, 0, 0, 0, 0},
    {48000, 25, 5, 1, 1, 0, 0},
    {45000, 124, 124, 0, 0, 0, 0},
    {24000, 124, 124, 0, 0, 0, 0},
    {12800, 120, 145, 0, 0, 0, 0},
    {39000, 124, 124, 0, 0, 0, 0},
    {75000, 124, 124, 0, 0, 0, 0},
    {12800, 128, 88, 0, 0, 0, 0},
    {45000, 64, 124, 0, 0, 0, 0},
    {70000, 44, 128, 0, 1, 0, 0},
    {96000, 280, 256, 0, 1, 0, 0},
    {70000, 44, 128, 0, 1, 0, 0},
    {70000, 96, 128, 0, 1, 0, 0},
    {61440, 48, 128, 0, 1, 0, 0},
    {122112, 96, 64, 0, 1, 0, 0},
    {61440, 96, 128, 0, 1, 0, 0},
    {30702, 96, 128, 0, 1, 0, 0},
    {122880, 96, 128, 0, 1, 0, 0},
    {150000, 96, 128, 0, 1, 0, 0},
};
} // namespace matmul_ascendc_list

#endif // ACLNN_MM_WHITE_LIST_H_